import { reqGetSearchInfo } from "@/api";

//state：仓库存储数据的地方
const state = {
    searchList: {}
};
//mutations：修改state的唯一手段
const mutations = {
    GETSEARCHLIST(state, searchList) {
        state.searchList = searchList
    }
};
//action：处理action。可以书写自己的业务逻辑，也可以处理异步
const actions = {
    //action可以有两个参数，dispatch派发的参数，传了参数直接使用，没有传递就直接赋值
    async getSearchList({ commit }, params = []) {
        //reqGetSearchInfo函数在调用获取服务器数据的时候，至少传递一个参数，（空对象）
        // params形参：是当用户派发action的时候，第二个参数传递过来的，至少是一个空对象
        let result = await reqGetSearchInfo(params)
        // console.log(result)
        if (result.code == 200) {
            commit("GETSEARCHLIST", result.data)
        }
    }
};
//getters：理解为计算属性，用于简化仓库数据，让组件获取仓库的数据更加方便
const getters = {
    //当前形参state，当前仓库中的state，并非大仓库中的那个state
    // 这样写当没有网络的时候，就会报undefined，就不能v-for遍历。正常来说是个数组。可以正常执行
    goodsList(state) {
        //返回正常数据，或者一个空数组，以支持后面的v-for
        return state.searchList.goodsList || [];
    },
    attrsList(state) {
        return state.searchList.attrsList
    },
    trademarkList(state) {
        return state.searchList.trademarkList
    }
};
export default {
    state,
    mutations,
    actions,
    getters,
};